package db;

/**
 * Beinhaltet alle Datenbankabfragen für 
 * die Kategorien
 * 
 * @author eric
 */
public class categories {
    /**
    * Gibt den Namen einer Kategorie zurück
    * @author eric
    * @param id ID der Kategorie
    * @return Name als String
    */
    public static String getName (String id) {
        String sql = "SELECT name FROM categories WHERE ID=" + id + ";";

        String[][] ret = db.MySQLConnection.getInstance().getGenericQuery(sql);

        return ret[0][0];
    }

    /**
    * Gibt den Namen einer Kategorie zurück
    * @author felix
    * @param id ID der Kategorie
    * @return Name als String
    */
    public static String getCategorieNameById (String id){
        String sql = "SELECT id, name FROM categories WHERE ID=" + id;
        String category[][] = db.MySQLConnection.getInstance().getSingleResultRow(sql);

        // return only the name of the category as a string
        String returnCategory = category[0][1];

        return returnCategory;
    }

    /**
    * Gibt alle Daten einer Kategorie zurück
    * @author felix
    * @param id ID der Kategorie
    * @return Stringarray mit ID und Name der Kategorie
    */
    public static String[] getCompleteCategoryById (String id){
        String sql = "SELECT id, name FROM categories WHERE ID=" + id;
        String typeofsport[][] = db.MySQLConnection.getInstance().getSingleResultRow(sql);

        return typeofsport[0];
    }

    /**
    * Alle Kategorien auslesen
    * @author felix
    * @return Stringarray mit allen IDs und Namen der Kategorien
    */
    public static String[][] getCategorieNamesAndIds() {
        String sql = "SELECT ID, name FROM categories;";
        return db.MySQLConnection.getInstance().getGenericQuery(sql);
    }

    /**
    * Alle Kategorien anhand der SportartID auslesen
    * @author felix
    * @param typeofsport ID der Sportart
    * @return Stringarray mit allen IDs und Namen der Kategorien
    */
    public static String[][] getCategorieNamesAndIdsByTypeofsport(String typeofsport) {
        String sql = "SELECT c.ID, c.name FROM categories as c, categoriessport as cs WHERE c.ID = cs.`categories.ID` AND cs.`typeOfSport.ID` = '" + typeofsport + "'";
        return db.MySQLConnection.getInstance().getGenericQuery(sql);
    }

    /**
    * Legt eine neue Kategorie an
    * @author felix
    * @param name Bezeichnung einer Kategorie
    */
    public static void createCategory (String name) {
        String sql = "INSERT INTO categories (ID, name) VALUES (null,?)";
        db.MySQLConnection.getInstance().executeStatement(sql, name);
    }

    /**
    * Aktualisiert eine Kategorie
    * @author felix
    * @param id ID der Kategorie
    * @param name Bezeichnung der Kategorie
    */
    public static void updateCategory (String id, String name) {
        String sql = "UPDATE categories SET name = ? WHERE ID = ?";
        String[] param = {name, id};
        db.MySQLConnection.getInstance().executeStatement(sql, param);
    }

}
